@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo.
echo ════════════════════════════════════════════
echo   智能诊断并推荐解决方案
echo ════════════════════════════════════════════
echo.

echo [1/5] 检查设备信息...
echo ════════════════════════════════════════════
echo.

for /f "tokens=*" %%a in ('adb shell getprop ro.product.manufacturer') do set MANUFACTURER=%%a
for /f "tokens=*" %%a in ('adb shell getprop ro.product.model') do set MODEL=%%a
for /f "tokens=*" %%a in ('adb shell getprop ro.build.version.release') do set ANDROID_VER=%%a

echo 设备制造商: %MANUFACTURER%
echo 设备型号: %MODEL%
echo Android版本: %ANDROID_VER%
echo.

echo [2/5] 检查模拟位置应用设置...
echo ════════════════════════════════════════════
echo.

adb shell "settings get secure mock_location" >nul 2>&1
if errorlevel 1 (
    echo ⚠️ 未在开发者选项中设置模拟位置应用
    set MOCK_APP_SET=0
) else (
    echo ✓ 已设置模拟位置应用
    set MOCK_APP_SET=1
)
echo.

echo [3/5] 检查当前位置状态...
echo ════════════════════════════════════════════
echo.

echo GPS Provider:
adb shell "dumpsys location" | findstr "gps provider" | findstr "last location" | findstr "mock" >nul 2>&1
if errorlevel 1 (
    echo   ❌ GPS Provider 未返回模拟位置
    set GPS_MOCK=0
) else (
    echo   ✓ GPS Provider 返回模拟位置
    set GPS_MOCK=1
)

echo.
echo Network Provider:
adb shell "dumpsys location" | findstr "network provider" | findstr "last location" | findstr "mock" >nul 2>&1
if errorlevel 1 (
    echo   ❌ Network Provider 未返回模拟位置
    set NETWORK_MOCK=0
) else (
    echo   ✓ Network Provider 返回模拟位置
    set NETWORK_MOCK=1
)

echo.
echo Fused Provider:
adb shell "dumpsys location | grep 'fused' | grep 'last location'" >temp_fused.txt
findstr /C:"mock" temp_fused.txt >nul 2>&1
if errorlevel 1 (
    echo   ❌ Fused Provider 返回真实位置（这是主要问题！）
    set FUSED_MOCK=0
) else (
    echo   ✓ Fused Provider 返回模拟位置
    set FUSED_MOCK=1
)
del temp_fused.txt >nul 2>&1
echo.

echo [4/5] 检查第三方应用...
echo ════════════════════════════════════════════
echo.

adb shell "pm list packages | grep autonavi" >nul 2>&1
if not errorlevel 1 (
    echo ✓ 已安装高德地图
)

adb shell "pm list packages | grep baidu" >nul 2>&1
if not errorlevel 1 (
    echo ✓ 已安装百度地图
)
echo.

echo [5/5] 检查设备特性...
echo ════════════════════════════════════════════
echo.

adb shell "su -c 'echo root'" >nul 2>&1
if not errorlevel 1 (
    echo ✓ 设备已 Root
    set ROOTED=1
) else (
    echo ⚠️ 设备未 Root
    set ROOTED=0
)
echo.

echo.
echo ════════════════════════════════════════════
echo   诊断结果
echo ════════════════════════════════════════════
echo.

:: 计算问题严重程度
set /a PROBLEM_SCORE=0
if %GPS_MOCK%==0 set /a PROBLEM_SCORE+=3
if %NETWORK_MOCK%==0 set /a PROBLEM_SCORE+=3
if %FUSED_MOCK%==0 set /a PROBLEM_SCORE+=5
if %MOCK_APP_SET%==0 set /a PROBLEM_SCORE+=2

echo 问题评分: %PROBLEM_SCORE%/13
echo.

if %PROBLEM_SCORE% LEQ 2 (
    echo 状态: ✅ 基本正常，可能只需要重启
    echo.
    goto RECOMMEND_RESTART
)

if %PROBLEM_SCORE% LEQ 5 (
    echo 状态: ⚠️ 部分问题，需要简单修复
    echo.
    goto RECOMMEND_SIMPLE
)

if %PROBLEM_SCORE% LEQ 8 (
    echo 状态: ⚠️⚠️ 严重问题，需要专业工具
    echo.
    goto RECOMMEND_PRO
)

echo 状态: ❌ 非常严重，需要高级方案
echo.
goto RECOMMEND_ADVANCED

:RECOMMEND_RESTART
echo ════════════════════════════════════════════
echo   推荐方案：重启手机
echo ════════════════════════════════════════════
echo.
echo 你的情况：模拟位置基本设置成功，但可能被缓存影响
echo.
echo 【推荐操作】
echo.
echo   1. 在应用中确认模拟位置已设置
echo   2. 长按电源键重启手机
echo   3. 重启后测试第三方应用
echo.
echo   成功率: 80%%
echo.
goto ADDITIONAL
:RECOMMEND_SIMPLE
echo ════════════════════════════════════════════
echo   推荐方案：停止融合定位 + 重启
echo ════════════════════════════════════════════
echo.
echo 你的情况：Mock Location 设置成功，但 Fused Provider 仍返回真实位置
echo.
echo 【推荐操作】
echo.
echo   方案A（快速）：
echo     1. 运行: 强制停止融合定位.bat
echo     2. 测试第三方应用
echo     3. 如不行，重启手机
echo.
echo   方案B（稳妥）：
echo     1. 直接重启手机
echo     2. 测试第三方应用
echo.
echo   成功率: 80%%
echo.
goto ADDITIONAL

:RECOMMEND_PRO
echo ════════════════════════════════════════════
echo   推荐方案：使用专业 Fake GPS 工具
echo ════════════════════════════════════════════
echo.
echo 你的情况：当前方法对你的设备效果不佳
echo.
echo 【推荐操作】
echo.
echo   方案1: Fake GPS Location（推荐）
echo   ────────────────────────
echo     1. 下载 Fake GPS Location (Lexa)
echo        Google Play: com.lexa.fakegps
echo        或从 APKPure 下载
echo.
echo     2. 卸载当前应用
echo        adb uninstall com.example.munidingwei
echo.
echo     3. 安装 Fake GPS Location
echo.
echo     4. 设置为模拟位置应用
echo        设置 → 开发者选项 → 选择模拟位置应用 → Fake GPS
echo.
echo     5. 使用 Fake GPS 设置位置
echo.
echo     6. 重启手机测试
echo.
echo   成功率: 90%%
echo.
echo.
echo   方案2: GPS JoyStick（功能更强）
echo   ────────────────────────
echo     网站: gpsjoystick.theappninjas.com
echo     特点: 支持路线、移动模拟、防检测
echo.
echo   成功率: 90%%
echo.
goto ADDITIONAL

:RECOMMEND_ADVANCED
echo ════════════════════════════════════════════
echo   推荐方案：VMOS 虚拟机或 Root
echo ════════════════════════════════════════════
echo.
echo 你的情况：传统方法无法解决，需要高级方案
echo.
echo 【推荐操作】
echo.
echo   方案1: VMOS 虚拟机（无需 Root）⭐推荐
echo   ────────────────────────
echo     1. 下载 VMOS Pro
echo        官网: http://www.vmos.cn/
echo.
echo     2. 安装并创建虚拟机
echo.
echo     3. 在虚拟机内安装地图应用
echo.
echo     4. 使用 VMOS 自带虚拟定位功能
echo.
echo   优点:
echo     ✓ 不需要 Root
echo     ✓ 完全独立环境
echo     ✓ 100%% 可控
echo.
echo   缺点:
echo     ⚠️ 占用约 2GB 空间
echo     ⚠️ 性能损失
echo.
echo   成功率: 95%%
echo.
echo.
if %ROOTED%==1 (
    echo   方案2: Xposed/LSPosed 模块（你的设备已 Root）
    echo   ────────────────────────
    echo     1. 安装 LSPosed 模块
    echo     2. 安装 Mock Location Xposed 模块
    echo     3. 启用模块并重启
    echo     4. 使用任意 Fake GPS 应用
    echo.
    echo   成功率: 100%%
    echo.
) else (
    echo   方案2: Root + Xposed（需要 Root，有风险）
    echo   ────────────────────────
    echo     ⚠️ 警告: Root 会导致保修失效，有变砖风险
    echo.
    echo     仅在以下情况考虑:
    echo       - 手机已过保修期
    echo       - 了解刷机风险
    echo       - 愿意承担后果
echo.
    echo     步骤:
    echo       1. 使用 Magisk Root 设备
    echo       2. 安装 LSPosed
    echo       3. 安装 Mock Location 模块
    echo.
    echo   成功率: 100%%
    echo.
)
goto ADDITIONAL

:ADDITIONAL
echo ════════════════════════════════════════════
echo   其他信息
echo ════════════════════════════════════════════
echo.

if /i "%MANUFACTURER%"=="Xiaomi" (
    echo 📱 小米设备特别提示:
    echo    小米系统对 Mock Location 支持较好
    echo    建议先尝试重启手机
    echo    如不行，使用 Fake GPS Location
    echo.
)

if /i "%MANUFACTURER%"=="HUAWEI" (
    echo 📱 华为设备特别提示:
    echo    华为系统限制较多
    echo    建议直接使用 VMOS 虚拟机方案
    echo.
)

if /i "%MANUFACTURER%"=="OPPO" (
    echo 📱 OPPO 设备特别提示:
    echo    ColorOS 对定位限制严格
    echo    建议使用专业工具或 VMOS
    echo.
)

if /i "%MANUFACTURER%"=="vivo" (
    echo 📱 vivo 设备特别提示:
    echo    OriginOS 对定位限制严格
    echo    建议使用专业工具或 VMOS
    echo.
)

echo.
echo ════════════════════════════════════════════
echo   详细文档
echo ════════════════════════════════════════════
echo.
echo 📖 查看完整方案说明:
echo    打开: 完整的手机定位修改方案.md
echo.
echo 💬 需要帮助?
echo    说明所有方案的详细步骤和下载地址
echo.

echo.
pause

